Page({
  data: {
    phone: '', // 手机号
    code: '', // 验证码
    password: '', // 新密码
    confirmPassword: '', // 确认密码
    codeBtnText: '获取验证码', // 验证码按钮文本
    isCounting: false, // 是否正在倒计时
    countdown: 60, // 倒计时秒数

    // 错误提示
    phoneError: '',
    codeError: '',
    passwordError: '',
    confirmError: ''
  },

  // 手机号输入变化
  onPhoneChange(e) {
    this.setData({ phone: e.detail });
  },

  // 验证码输入变化
  onCodeChange(e) {
    this.setData({ code: e.detail });
  },

  // 新密码输入变化
  onPasswordChange(e) {
    this.setData({ password: e.detail });
  },

  // 确认密码输入变化
  onConfirmPasswordChange(e) {
    this.setData({ confirmPassword: e.detail });
  },

  // 获取验证码
  getCode() {
    const { phone, isCounting } = this.data;
    // 防止重复点击
    if (isCounting) return;

    // 验证手机号
    if (!phone) {
      this.setData({ phoneError: '请输入手机号' });
      return;
    }
    if (!/^1[3-9]\d{9}$/.test(phone)) {
      this.setData({ phoneError: '请输入正确的手机号' });
      return;
    }
    this.setData({ phoneError: '' }); // 清除错误提示

    // 模拟发送验证码（实际项目中调用后端接口）
    wx.showLoading({ title: '发送中...' });
    setTimeout(() => {
      wx.hideLoading();
      wx.showToast({ title: '验证码已发送' });

      // 开始倒计时
      this.setData({ isCounting: true, codeBtnText: '60s后重新获取' });
      const timer = setInterval(() => {
        let { countdown } = this.data;
        countdown--;
        if (countdown <= 0) {
          clearInterval(timer);
          this.setData({ countdown: 60, isCounting: false, codeBtnText: '获取验证码' });
        } else {
          this.setData({ countdown, codeBtnText: `${countdown}s后重新获取` });
        }
      }, 1000);
    }, 1000);
  },

  // 表单验证
  validateForm() {
    const { phone, code, password, confirmPassword } = this.data;
    let isValid = true;

    // 验证手机号
    if (!phone) {
      this.setData({ phoneError: '请输入手机号' });
      isValid = false;
    } else {
      this.setData({ phoneError: '' });
    }

    // 验证验证码
    if (!code) {
      this.setData({ codeError: '请输入验证码' });
      isValid = false;
    } else if (code.length !== 6) {
      this.setData({ codeError: '验证码为6位数字' });
      isValid = false;
    } else {
      this.setData({ codeError: '' });
    }

    // 验证密码
    if (!password) {
      this.setData({ passwordError: '请输入新密码' });
      isValid = false;
    } else if (password.length < 6 || password.length > 16) {
      this.setData({ passwordError: '密码长度为6-16位' });
      isValid = false;
    } else {
      this.setData({ passwordError: '' });
    }

    // 验证确认密码
    if (!confirmPassword) {
      this.setData({ confirmError: '请再次输入密码' });
      isValid = false;
    } else if (confirmPassword !== password) {
      this.setData({ confirmError: '两次输入的密码不一致' });
      isValid = false;
    } else {
      this.setData({ confirmError: '' });
    }

    return isValid;
  },

  // 保存密码（提交表单）
  save() {
    // 表单验证
    if (!this.validateForm()) return;

    const { phone, code, password } = this.data;
    const token = wx.getStorageSync('token'); // 获取token（如果需要）

    // 显示加载
    wx.showLoading({ title: '保存中...' });

    // 调用修改密码接口
    wx.request({
      url: 'http://admin.bsmall.byesame.com/wx/auth/reset-password', // 替换为实际接口
      method: 'POST',
      header: {
        'x-byesame-token': token || '', // 如有需要携带token
        'Content-Type': 'application/json'
      },
      data: {
        phone,
        code,
        password
      },
      success: (res) => {
        if (res.data?.errno === 0) {
          wx.showToast({ title: '密码修改成功' });
          // 跳回上一页或登录页
          setTimeout(() => {
            wx.navigateBack();
          }, 1500);
        } else {
          wx.showToast({ title: res.data?.msg || '修改失败', icon: 'none' });
        }
      },
      fail: () => {
        wx.showToast({ title: '网络错误，请重试', icon: 'none' });
      },
      complete: () => {
        wx.hideLoading();
      }
    });
  },

  // 生命周期函数
  onLoad() {},
  onReady() {},
  onShow() {},
  onHide() {},
  onUnload() {}
})